package com.pur.zsms.service;

import java.io.InputStream;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import org.apache.commons.beanutils.BeanUtils;

import com.pur.zsms.common.exception.GenericException;
import com.pur.zsms.common.support.PageController;
import com.pur.zsms.common.support.PaginationSupport;
import com.pur.zsms.common.util.CipherUtil;
import com.pur.zsms.common.util.ExcelReader;
import com.pur.zsms.foodmanage.food.po.FoodMaterPo;
import com.pur.zsms.foodmanage.food.vo.FoodVo;
import com.pur.zsms.matermanage.mater.po.MaterLevelPo;
import com.pur.zsms.matermanage.mater.po.MaterPo;
import com.pur.zsms.matermanage.mater.vo.MaterVo;
import com.pur.zsms.matermanage.mater.vo.MaterVoForSup;
import com.pur.zsms.matermanage.mater.vo.OrderDistributorMaterRealVo;
import com.pur.zsms.ordercustommanage.po.OrderCustFoodPo;
import com.pur.zsms.ordercustommanage.po.OrderDistributorMaterRealPo;
import com.pur.zsms.ordercustommanage.po.OrderDistributorPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierMaterPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierMaterRealPo;
import com.pur.zsms.ordercustommanage.po.OrderSupplierPo;
import com.pur.zsms.ordercustommanage.vo.OrderCustFoodVo;
import com.pur.zsms.ordercustommanage.vo.OrderCustVo;
import com.pur.zsms.ordercustommanage.vo.OrderDistributorVo;
import com.pur.zsms.ordercustommanage.vo.OrderStateVo;
import com.pur.zsms.ordercustommanage.vo.OrderSupplierMaterRealVo;
import com.pur.zsms.ordercustommanage.vo.OrderSupplierVo;
import com.pur.zsms.ordercustommanage.vo.SelectFoodList;
import com.pur.zsms.ordercustommanage.vo.SelectFoodVo;
import com.pur.zsms.ordercustommanage.vo.SelectMaterVo;
import com.pur.zsms.pmsnmanage.menu.po.MenuPo;
import com.pur.zsms.pmsnmanage.role.vo.RoleVo;
import com.pur.zsms.pmsnmanage.user.po.UserPo;
import com.pur.zsms.pmsnmanage.user.vo.UserVo;
import com.pur.zsms.supplier.po.ShopSupplierTypePo;

public interface IDistributorService {
	String msg = "";

	public String getMsg();

	public void setMsg(String msg);

	public PaginationSupport findMaterForDistributor(PageController pageController, MaterVo materVo) throws GenericException;

	public OrderDistributorPo addMaterOrderForDistributor(List<OrderDistributorMaterRealVo> orderDistributorMaterRealVoList) throws GenericException;

	public void addMaterOrderDetailForDistributor(List<OrderDistributorMaterRealVo> selectMaterList, int ordId) throws GenericException;

	public PaginationSupport listDistributorOrder(PageController pageController, OrderDistributorMaterRealVo orderDistributorMaterRealVo)
			throws GenericException;

	public OrderDistributorPo getOrderDistributorPo(OrderDistributorVo orderDistributorVo) throws GenericException;

	public OrderDistributorMaterRealPo getOrderDistributorMaterRealPo(OrderDistributorMaterRealVo tOrderDistributorMaterRealVo)
			throws GenericException;

	public PaginationSupport findDistributorDetailOrder(PageController pageController, OrderDistributorMaterRealVo orderDistributorMaterRealVo)
			throws GenericException;

	public PaginationSupport findDistributorDetailOrderForSup(PageController pageController, OrderDistributorMaterRealVo orderDistributorMaterRealVo)
			throws GenericException;

	public void updateOrderForDistributor(OrderDistributorMaterRealVo orderDistributorMaterRealVo) throws GenericException;

	public void updateOrderMaterValueAll(OrderDistributorPo tOrderDistributorPo, boolean flag) throws GenericException;

	public void deleteOrderMaterForDistributor(OrderDistributorMaterRealVo orderDistributorMaterRealVo) throws GenericException;

	public void deleteOrderForDistributor(OrderDistributorMaterRealVo orderDistributorMaterRealVo) throws GenericException;

	public void reviewOrderDistributor(OrderDistributorPo orderDistributorPo) throws GenericException;

	public boolean importCommitMaterOrderForDistributorToSheet(ExcelReader excelReader, InputStream is, long distributorId, String ordDate)
			throws Exception;

	public boolean importCommitMaterOrderForDistributorToSup(ExcelReader excelReader, InputStream is, long distributorId, String ordDate)
			throws Exception;

	public void updateOrderDistributorPo(OrderDistributorPo orderDistributorPo) throws GenericException;

	public boolean changeOrdMater(OrderDistributorMaterRealVo orderDistributorMaterRealVo) throws GenericException;

}
